import { CapsuleGeometry, SphereGeometry } from "three";

export class ThreeGeometry {

    /**
     * 该几何体是通过扫描并计算围绕着Y轴（水平扫描）和X轴（垂直扫描）的顶点来创建的。 因此，不完整的球体（类似球形切片）可以通过为phiStart，phiLength，thetaStart和thetaLength设置不同的值来创建， 以定义我们开始（或结束）计算这些顶点的起点（或终点）。
     * @param radius — 球体半径，默认为1。
     * @param widthSegments — 水平分段数（沿着经线分段），最小值为3，默认值为32。
     * @param heightSegments — 垂直分段数（沿着纬线分段），最小值为2，默认值为16。
     * @param phiStart — 指定水平（经线）起始角度，默认值为0。
     * @param phiLength — 指定水平（经线）扫描角度的大小，默认值为 Math.PI * 2。
     * @param thetaStart — 指定垂直（纬线）起始角度，默认值为0。
     * @param thetaLength — 指定垂直（纬线）扫描角度大小，默认值为 Math.PI。
     */
    sphere(radius?: number, widthSegments?: number, heightSegments?: number, phiStart?: number, phiLength?: number, thetaStart?: number, thetaLength?: number) {
        return new SphereGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength)
    }

    capsule(radius?: number, length?: number, capSegments?: number, radialSegments?: number) {
        return new CapsuleGeometry(radius, length, capSegments, radialSegments)
    }

}